package com.baizhi.mathx;

/**
 * 目标：学会Math类的使用
 * Math类提供数学运算的方法
 * Math类中提供的方法都是静态方法，可以直接类名调用即可
 */
public class MathDemo {
    public static void main(String[] args) {
        //取绝对值
        System.out.println(Math.abs(-6)); //6
        System.out.println(Math.abs(6));  //6
        //-2147483648~+2147483647
       // System.out.println(Math.abs(-2147483648));  需要在int 范围内使用，否则出现Bug


        //向上取整
        System.out.println(Math.ceil(3.14)); //4
        System.out.println(Math.ceil(-3.14)); //-3


        //向下取整数
        System.out.println(Math.floor(3.14)); //3
        System.out.println(Math.floor(-3.14)); //-4


        //求a的b次幂
        System.out.println(Math.pow(2, 2)); //4
        System.out.println(Math.pow(2, 3)); //8

        //四舍五入
        System.out.println(Math.round(3.14)); // 3
        System.out.println(Math.round(3.54)); //4

        System.out.println("====================");

        //生成0-1之间的随机数 包含0 不包含1
        System.out.println(Math.random()); //【0  1】

        //生成1-100之间的随机数
        //[0, 99]
        //[1,100]
        double num = Math.ceil(Math.random()*100);
        System.out.println(num);

        int a = (int)(Math.random() * 100 + 1);
        System.out.println(a);

        //练习：生成3-9之间的随机数
        int data = (int)(Math.random() * 7) + 3 ;

        //[0,1]
        //[0,6]
        double data2 = Math.floor(Math.random()* 7 ) + 3  ;

        System.out.println("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
        //求一个数的平方根
        System.out.println(Math.sqrt(4)); //2
        System.out.println(Math.sqrt(9)); //3
        System.out.println(Math.sqrt(16)); //4


    }
}
